#!/bin/bash

# SSL 证书自动更新系统安装脚本
# 适用于 CentOS 8 环境
# 注意: 需要预先安装和配置 Nginx

set -e

# 获取脚本所在目录的绝对路径
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
USER=$(whoami)

# 可配置的 Nginx 路径
# 根据您的 Nginx 安装路径修改以下变量：
# - 如果使用系统包管理器安装的 Nginx，通常路径为：
#   NGINX_CONF_DIR="/etc/nginx"
#   NGINX_BIN="/usr/sbin/nginx"
# - 如果使用源码编译的 Nginx，通常路径为：
#   NGINX_CONF_DIR="/usr/local/nginx/conf"
#   NGINX_BIN="/usr/local/nginx/sbin/nginx"
NGINX_CONF_DIR="/usr/local/nginx/conf"
NGINX_CONF_FILE="$NGINX_CONF_DIR/conf.d/default.conf"
NGINX_BIN="/usr/local/nginx/sbin/nginx"

echo "=========================================="
echo "SSL 证书自动更新系统安装脚本"
echo "适用于 CentOS 8 环境"
echo "注意: 需要预先安装和配置 Nginx"
echo "=========================================="
echo ""
echo "当前 Nginx 配置路径："
echo "  配置目录: $NGINX_CONF_DIR"
echo "  配置文件: $NGINX_CONF_FILE"
echo "  Nginx 二进制: $NGINX_BIN"
echo ""
echo "如需修改路径，请编辑脚本顶部的配置变量"
echo "=========================================="

# 检查是否为 root 用户或有 sudo 权限
if [ "$EUID" -eq 0 ]; then
    echo "警告: 建议不要使用 root 用户运行此脚本"
    read -p "是否继续? (y/N): " -n 1 -r
    echo
    if [[ ! $REPLY =~ ^[Yy]$ ]]; then
        exit 1
    fi
fi

# 检查 sudo 权限
if ! sudo -n true 2>/dev/null; then
    echo "错误: 需要 sudo 权限来安装系统包"
    echo "请确保当前用户有 sudo 权限"
    exit 1
fi

echo "1. 更新系统包..."
sudo dnf update -y

echo "2. 安装必要的系统包..."
sudo dnf install -y epel-release
sudo dnf install -y certbot python3-certbot-nginx openssl mailx

echo "3. 创建必要的目录..."
mkdir -p "$SCRIPT_DIR/logs"

echo "4. 设置脚本权限..."
chmod +x "$SCRIPT_DIR"/*.sh

echo ""
echo "=========================================="
echo "安装完成！"
echo "=========================================="
echo ""
echo "下一步操作："
echo "1. 编辑 $SCRIPT_DIR/domains.conf 文件，添加您的域名"
echo "2. 编辑 $SCRIPT_DIR/ssl_auto_renew.sh 文件，修改邮箱地址"
echo "3. 运行 ./setup_cron.sh 设置定时任务"
echo "4. 运行 ./ssl_auto_renew.sh request 申请第一个证书"
echo ""
echo "测试命令："
echo "  ./ssl_auto_renew.sh check    # 检查证书状态"
echo "  ./monitor.sh all            # 运行完整监控"
echo ""
echo "详细说明请查看 README.md 文件"
